asp毕业设计 您所在的位置:网站首页 usb接口不正常 识别不了所有设备 asp毕业设计

asp毕业设计

2023-06-06 20:50| 来源: 网络整理| 查看: 265

基于Delphi+USB KEY的文件加密工具设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于Delphi+USB KEY的文件加密工具设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

基于Delphi+USB KEY的文件加密工具设计与实现(毕业论文+程序源码)1、项目简介2、资源详情3、关键词4、毕设简介5、资源下载

1、项目简介

随着信息技术的飞速发展,文件的安全性越来越被重视。为了实现对个人重要信息的加密,防止别人窃取个人的文件信息,提高文件的安全性,文件加密成为了一个重要的课题。

本设计为了解决用户记忆烦琐的密码问题,以软、硬件相结合的方式,实现了文件加密和解密的功能。具有操作简单、稳定性高、兼容性好、速度快等特点。该系统使用Rockey2加密锁,用Delphi进行开发。本系统分为两部分,一部分是文件的加密解密;另一部分是加密锁的管理工具。后一部分由本人完成。

本文主要介绍了USB KEY文件加密工具的总体设计和详细设计思路以及应用和编码。在总体设计中主要介绍了设计该工具的需求分析、系统的选型、以及Rockey2加密锁的介绍。在详细设计中主要介绍了系统功能的分析、Rockey2加密锁的内存分配、以及数据库的相关设计。在应用和编码部分主要介绍了硬件的安装,初始化、写用户名和密码的应用和编码,管理界面的设计以及数据库的相关操作。最后介绍了系统的不足以及改进方案。

2、资源详情

项目难度:中等难度 适用场景:相关题目的毕业设计 配套论文字数:9527个字25页 包含内容:全套源码+配整论文 开题报告、论文答辩、课题报告等ppt模板推荐下载方式: 在这里插入图片描述

3、关键词 USB;加密;Delphi;管理 4、毕设简介

提示:以下为毕业论文的简略介绍,项目完整源码及完整毕业论文下载地址见文末。

引 言 1.1选题背景 随着社会高科技,商品经济化突飞猛进的发展,计算机的应用已经普及到经济和社会生活的各个领域。长期以来人们使用各种加密技术以保证计算机中信息的安全,防止被一些有不良用心的人看到或则破坏。在信息时代,信息可以帮助团体和个人,使他们受益,同时,信息也可以对他们构成威胁,造成破坏。在激烈竞争的社会中,大家都会想尽办法获取对方的资料。因此客观上就需要有一种强有力的安全措施来保护我们的机密数据不被窃取和破坏。

1.2国内外研究现状 在日常的应用中,面对很多熟知的压缩软件和加密软件,例如WinRaR、WinZip等,这些软件也逐渐成为了当前大家默认的业界应用标准。然而,也正是它们的通用性和普遍性使它们缺乏个性化的应用特色,采用口令保护的方式对压缩文件进行加密也是形同虚设,有许多破解软件都能够轻而易举地获取口令。面对WinRaR和WinZip自身的不足。比如密码太长用户就不方便记忆,有可能会忘记,密码太短又会不安全。如果利用扩展硬件(USB Key)来进行文件的加密和解密,那么就可以有效避免上面的问题。因此这样就不需要手工来进行密码的输入,而将加密和解密的密码是保存在扩展硬件当中的。

1.3本设计研究的意义 如果使用硬件来进行文件的加密具有访问速度快、可靠性高、保密性好、寿命长等优点。但是以前加密硬件成本较高,往往用在对安全要求相对较高的场合。随着硬件成本的降低,这种设备已经可以被个人所接受。因此本文描述了一种使用低成本USB Key来辅助进行加密的文件加密系统,可以广泛的应用在个人信息的保护和企业重要文件保护当中。

1.4本设计研究的方法 本设计分为两个部分,由两个人共同完成。一部分是利用低成本的USB Key来做一个对文件的加密工具;一部分是利用Delphi编写的一个相对简单的管理软件来实现对USB Key的管理。加密工具符合大多用户操作WinRAR的习惯,可以方便的对文件进行加密和解密的操作,同时具有方便、易用、安全的特点。管理软件能对用户以及USB KEY进行简单的管理,当用户拥有的USB KEY遗失时可以有效的复制一把USB KEY,同时管理界面简单、易用的特点。

2 USB KEY文件加密工具总体设计 2.1USB KEY文件加密工具需求分析 当前软件加密方法多种多样,基本上来说可以分为依赖特定硬件的加密方案和不依赖硬件的加密方案。 依赖特定硬件的加密方案:软盘加密、卡加密、光盘加密。软盘加密和卡加密曾经作为一种很好的加密工具,现在已经很少使用了,这是因为用户很少使用软驱,那么软盘加密技术也就没怎么使用。90年代初,各种各样的汉卡涌现出来,并轰动一时,而现在也很少再使用。光盘加密是一种新的加密方式。既然有软盘加密成功在先,为什么不能有光盘加密呢?但实际操作上确实是有一些问题的,因为光盘有ISO9660标准协议规定,其可控制性比软盘还要严格,想找出一种只能运行而不能复制的方式确实很困难。

不依赖硬件的加密方案:利用WinRAR、WinZip等压缩软件来进行文件的加密。利用压缩软件来实现对文件的加密是现在比较流行的一种方式,但是其有很多的不足,例如向密码太长用户就不方便记忆,有可能会忘记,密码太短又会不安全。并且现在网上有很多的针对WinRAR、WinZip的破解工具,利用破解工具很容易就把用户的密码给破解了,这样用户对文件的加密就如同虚设。 本设计就是利用软件和硬件相结合的方式来实现对文件进行加密。这种方式就是使用软件加密锁(USB KEY)来实现。也就是一个插在计算机USB接口上火柴盒大小的设备,国内俗称“加密狗”。在加密锁内部存有一定的数据和算法,计算机可以与之通讯来获得其中的数据,或通过加密锁进行某种计算。软件无法离开加密锁而运行。由于它不像卡加密那样需要打开计算机的机箱来安装,但又像加密卡那样可以随时访问,而且访问速度很快,所以一推出就受到软件开发者们的青睐。目前,所有的加密锁都提供了可编程的接口。用户可以控制加密锁中的内容,在程序中通过加密锁的接口任意访问加密锁。

利用USB KEY对文件加密应尽量满足用户的需求,使用户对文件加密和解密的过程操作简单,使用方便。并且对密码也要有完善的管理。使用USB KEY可以在USB Key中保存密码,不在需要用户去手动输入密码,解决了用户去记忆复杂密码的过程。鉴于越来越多的人使用USB KEY来保护自己的个人文件。但是许多的意外事件可能会降临,一旦USB KEY被遗失,那么后果将是巨大的。所以开发一个管理性的软件记录拥有USB KEY的用户相关信息、USB KEY的硬件ID、以及对文件加密的密码是十分必要且有效的方法。 利用USB KEY文件加密需要从两个方面去实现用户的需求,第一:USB KEY的管理。第二:客户端应用。

在USB KEY的管理方面:主要包括分类管理、客户添加、查看、编辑,初始化Rockey2这几个方面的功能。分类管理是对用户按什么方式进行分类管理(比如按时间,地区等),由管理员自己设定分类方式,这样便于方便管理用户;管理员实现对用户的添加,查看,编辑;管理员对USB KEY进行初始化,一把新的USB KEY第一次使用,必须进行初始化,初始化也就是根据种子生成对文件加密的密钥,以及UID,并且还要记录USB KEY的信息(包括对文件加密的密钥,硬件ID等)到管理软件中,以便以后对USB KEY进行复制。

在客户端方面,应该尽量使操作简单,不麻烦,就类似winrar对文件加密的操作一样。这样才能被用户接受。这一方面主要完成文件的加密和解密操作。 其系统结构图如下:

在这里插入图片描述

图1系统整体结构图 USB KEY文件加密系统的客户端主要实现对文件的加密和解密;其管理系统主要实现对对用户以及拥有的USB Key信息进行操作管理。

2.2系统选型 2.2.1设计语言:Delphi Delphi是Borland公司研制的新一代可视化开发工具,可在Windows3.x、Windows95、Windows NT等环境下使用。它拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言Object Pascal和基于部件的开发结构框架。Delphi它提供了100多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。主要特点如下: (1)直接编译生成可执行代码,编译速度快。(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。 (3)提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。 (4)具有可重用性和可扩展性。(5)具有强大的数据存取功能。它的数据处理工具BDE(Borland Database Engine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如x Base、Paradox等,也可以通过BDE的SQL Link直接与Sybase、SQL Server、Informix、Oracle等大型数据库连接。 Delphi既可用于开发系统软件,也适合于应用软件的开发。

从上可以看出Delphi在开发数据库性质的管理软件十分方便和快捷。

2.2.2数据库的选择 USB key文件加密管理系统的数据库选用的是Absolute Database。Absolute Database是 Borland数据库引擎(BDE)的替代品。具有高速,健壮,易用的特点。使用Absolute Database不需要特别的安装和配置。 该系统在连接数据库用到了以下几个数据库引擎组件,如表1所示: 表1组件表 在这里插入图片描述

2.2.3开发工具的选择 现在有许多的第三方控件支持Delphi, USB key文件加密管理系统使用了Dev Express DB Tress和Dev Express Quantum Grid这两个控件

Express DB Tress:强大的树型结构列表的控件。 Express DB Tress为VCL开发者们提供了一个最高级的树形列表技术。Express DB Tress 是一个功能强大,已打包的组件库,它可以帮助你创建杀手级软件,为你的最终用户提供难以置信的功能,只需要很少的代码就可以实现用户的需求。Express Quantum Grid:表格控件。 它是树形列表控件和数据编辑控件的控件库,适合于Delphi和C++ Builder平台下的应用开发。该组件是基于底层开发出来的,而且是纯粹的本地化的可视控件库,特别设计用来开发引人注目的应用程序,将令人难以置信的特性传递给终端用户,从而使你的程序产品在激烈的竞争中取得优先地位,而实现这一切不需要编写简单的一行代码。

2.2.4开发硬件的选择 利用USB KEY对文件进行加密和解密时,都需要有一把USB KEY硬件锁作为支配。在众多的KEY中选用Rockey2加密锁作为这个USB KEY。因为Rockey2加密锁是安全性比较高的免驱动的USB 设备,同时售价低。采用的是传统 EPROM 结构。它制作容易,使用方便。而且它方便携带,记录的空间也比较大。适合各类人员对文件进行加密。利用Rockey2已经可以满足该设计的需求。

2.3 ROCKEY2加密锁 2.3.1 Rockey2加密锁简介 Rockey2加密锁是为软件开发商提供的一种智能型的软件加密工具,它包含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密狗基于硬件加密技术,其目的是通过对软件与数据的加密防止知识产权被非法使用。 Rockey2加密锁是一种比较简化型的加密锁。适合各类人员对信息进行加密。用户可以对自己电脑里面的私人信息进行加密,公司可以对内部机密信息进行加密等等。 Rockey2加密锁是一款可以支持软件保护应用和身份认证应用的多功能,免驱动的USB 设备。 2.3.2 Rockey2加密锁特点 其特点如下: a) USB无驱设备 b) 全球唯一硬件ID c) 提供外壳加密工具 d) 2.5K用户使用空间 e) 标准USB1.1设备,支持USB2.0接口 f) 提供多种软件接口:Delphi、Foxpro、Java、PB、VB、VC、VS.NET等 2.3.3 Rockey2加密锁优点 Rockey2具有以下一些优点: (1)兼容性好 它具有高度的透明性,特别是对多个相同的Rockey2加密锁也可以使用USB HUB并联在一起使用,相互之间不会有干扰。 (2)速度快 对于使用Rockey2加密锁加密后的软件,其运行速度同加密前的区别并不大,它能够在很短的时间内处理完毕,保证用户程序的顺畅运行。 (3)使用简便 Rockey2加密锁最大限度的简化了接口。可以在很短的时间内掌握它的使用方法,从而大大的节约了时间。 2.3.4 Rockey2 加密锁要点说明 每一把 Rockey2 加密锁除了有 1 个独一无二的“硬件ID外”,还有 1 个用户可设定的“用户ID”,我们定义“硬件ID”为 HID,“用户ID”为 UID,这 2 个 ID 都是 32bit 位的 DWORD 数值。每把加密锁都是倚赖这 2 个 ID 作为独一无二的识别标志。 当对Rockey2 加密锁还没有进行初始化的时候,缺省的 UID 为 0,这时候虽然能够使用这个等于0 的 UID 来打开加密锁并进行读写操作,但无法获得正确的 HID,因为当 UID 等于 0 的时候,表示的是出厂状态,这时候 HID 也会返回 0。只有当用户设定了自己的 UID 以后,才能够获得正确的 HID。 在用户生成 UID 的时候需要给出1个长度不超过64个字节的字符串作为种子,加密锁会根据这个种子生成 UID,这个生成算法是在加密锁内部完成的,而且是不可逆的,也就是说,只有生成者才知道什么样的种子能生成什么样的 UID,别的人即使知道 UID,也能够调用这个计算过程,但因为不知道种子是什么,是无法生成你的 UID 的。 另外在生成 UID 的时候,能够指定加密锁的 EPROM 是否是可写的,如果设定为不可写,整个 EPROM 处于写保护状态。

3 USB KEY文件加密工具系统详细设计 3.1 系统功能模块分析 总体模块分为KEY的管理和客户端两部分。在KEY的管理方面我们需要把KEY里面记录的信息都保存到数据库里面,方便我们查询、修改、添加和删除KEY里面的信息。对每把锁都进行管理,防止有同号锁出现。如果加密锁因为某种情况损坏或者是丢失了,那么可以通过数据库里面记录的信息复制一把相同的锁,这样就不用担心由于找不到锁而不能对已加密的文件进行解密操作。对加密锁进行更加完善的管理,才能进一步保障被加密文件的安全,让用户才会更加放心的使用。客户端部分主要是完成操作方面的功能。客户端主要包括两方面—文件加密和文件解密。对文件进行加密时,要利用USB KEY中的密码对文件进行加密。这就需要从KEY里面读取出密码并利用该密码对文件进行加密。并且对该密码进行MD5换算。得到密码的MD5值,把这个值称为XID。对文件进行解密时,先从KEY里面读取出密码,然后对密码进行MD5换算,如果换算后的XID与被加密文件的XID一样就可以成功对文件进行解密,否则不能对文件解密。 该设计主要是管理员对用户以及拥有的USB Key信息进行操作管理,功能说明如下: 1)分类管理:设置创建新分类和子分类。通过按地区、时间等对用户进行分类,以方便进行管理。 2)客户信息管理:实现对客户信息的添加、删除和修改。也就是系统中的添加、编辑和查看客户模块。 3)Rockey2的初始化:实现对Rockey2的初始化,通过种子生成对文件加密的密钥,还有UID。初始化过后并把Rockey2的相关信息(包括密钥和硬件ID)记录到管理系统中。 系统功能图如下:

在这里插入图片描述

图2系统功能结构图 3.2ROCKEY2加密锁内存分配 Rockey2加密锁总共有2560个字节,为了便于管理,把USB KEY的存储空间分配成5个段,每个段为512个字节。在把每个段划分成16个存储区,每个区32个字节。这样便于对KEY的存储空间进行统一的分配和管理。以后向KEY的存储区里面写入的信息时,信息都会自动保存到相关的位置。 表2内存分配示意图 在这里插入图片描述

3.2数据库设计 3.2.1数据库需求分析 作为一个具有一定应用价值的管理系统,从本质上说其操作的对象为数据库中存储的具体记录。因此,不仅需要所使用的数据库系统具有比较高的稳定性、安全性下保持足够响应的能力,还要求设计者清楚需求,做出合理的数据库逻辑结构设计,以提高数据库的利用效率和减少数据冗余。 以这种思想作为设计策略,分析出系统的以下几项需求: (1)管理员可以实现对用户的分类 (2)管理员可以实现对用户信息的添加,编辑和查看。 (3)管理员可以初始化用户拥有的Rockey2

3.2.2数据库实体关系设计 通过以上的需求分析,设计出数据库的逻辑结构——E-R图,从这种逻辑结构有可以建立数据库的物理结构即表结构。根据需求设计出三个数据表,分别是:客户信息表(clients),key表(keys),分类表(groups)其结构及关系如图1所示。 在这里插入图片描述

3.2.3数据库逻辑设计 确定了数据库的逻辑关系和数据结构之后,进一步将以上所述的四个数据表由概念结构转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。 在这里插入图片描述在这里插入图片描述

4应用以及编码 4.1初始化以及写密码的过程的应用与编码 初始化是本设计的一个重要过程。通过加密锁的内存分配可以知道,加密锁里面存储有4个数据:NULL(辨别是否初始化);SN(密码);MD5(密码的MD5值);UN(用户名)。一把新的加密锁里面的数据都是空的,必须向里面写入数据才可以使用。

首先定义一个种子,种子的长度不能超过64个字节。它由数字和字母组成。SecureStr=f6a24cac3922c691ad2ce13b64d83c546f994f11e14ada832dd1b9e167e64464,定义种子之后,就可生成UID = ‘1921722780’。这个UID是唯一的,也就是说以后所有初始化的USB key都有相同的UID。 在随机产生密码的过程中,定义一个函数GenPass( ),并且把密码的范围限制在32个字节以内。然后需要随机生成密码,在随机生成密码的过程中调用Random(93)函数。目的是让它产生一个从1到92之间的随机数。但是ASC表中的32为空,所以就取32之后的值。

//具体实现代码为: begin Randomize; for I := 1 to 32 do begin Pass := Pass + Char(Random(93) + 33); end; Result := Pass; end;

随机密码产生后,在初始化过程中就利用种子生成UID。在此过程中定义函数InitRockey(ESeed: string; var UID: Cardinal; ReadOnly: boolean),对KEY进行初始化。然后利用该UID产生密码,产生密码后就直接写入KEY里面。

//其关键代码为: Str := ESeed; If ReadOnly then Retcode :=RY2_GenUID(Handle,GUID,PChar(Str),ROCKEY2_ENABLE_WRITE_PROTECT) else Retcode :=RY2_GenUID(Handle,GUID,PChar(Str),ROCKEY2_DISABLE_WRITE_PROTECT); ………………省略………………… UID := GUID;

产生的GUID的值就是UID的值。最后在对锁进行初始化时,需要锁给出一个询问信息。InitRockyQuery(),询问是否对锁进行初始化。 MessageDlg(‘初始化 Rockey?’, mtConfirmation, [mbYes, mbNo], 0) = 6。 Confirmation在这里使用是在询问框中显示YES或则NO这两个确认按钮。 写密码的过程中,定义函数WritePass( ),写密码前,还需要对KEY定义一个区段,不然密码写进去后会不知道存放在什么地方;自定义把密码存放在33-64这个存储区域内。然后直接把密码Write进去。

//部分代码为: if (not ReadSection(0, Str)) then exit; if not OpenKey then exit; MD5Str := MD5DigestToStr(MD5String(Pass)); Str := StuffString(Str, 33, 32, Pass); Str := StuffString(Str, 65, 32, Md5Str); Retcode := RY2_Write(HKey, 0, PChar(Str)); if retcode 0 then begin KID := QRockey.FieldByName('KID').AsInteger; CID := QRockey.FieldByName('KCID').AsInteger; QRockey.Close; QS := Format(Find_Group_By_CID, [CID]); QRockey.SQL.Clear; QRockey.SQL.Add(QS); QRockey.Open; if QRockey.RecordCount > 0 then begin GID:=QRockey.FieldByName('CGID').AsInteger; Result:=True; end; QRockey.Close; end; ; end;

为了程序在运行的时候能够动态的找到数据库文件,我采用的ExtractFilePath函数,来指定程序执行的动态路径。

DbFile:=ExtractFilePath(Application.ExeName)+'DB\Rockys.abs'; Rockys.DatabaseFileName:=DbFile;

结 论 经过这段时间的紧张工作,已经完成了USB Key文件加密系统基本功能的设计和实现。系统实现了管理员对客户信息的分类、添加、编辑、查看,对客户的Rockey2进行初始化的功能,以及对文件的加密和解密。 本系统的安全性高和可移植性好的特点,并且界面简单、易用。 1.问题分析 USB key文件加密系统是曹林和康桃仪共同完成的第一个项目,通过这次毕业设计学到了很多知识,进一步掌握了Delphi语言。虽然完成了系统基本功能的设计和实现,但是由于能力和时间有限,功能上还有很多不足之处。例如: ①本系统对用户权限问题只实现了一个权限管理,这还不能满足一个企业正常运营的需求。 ②对于Rockey2硬件ID是每个Rockey2具有不同的硬件ID,在管理员进行复制的时候,有可能找不到客户拥有的对文件加密时密码一样而硬件ID号不一样的哪个Rockey2。 2.改进方案 ①对用户权限的问题可以针对不同的情况设置多个用户类型,赋予这些用户类型不同的权限。比如,可以在本系统中添加系统管理员这一用户类型,来对整个系统进行维护与管理。 ②在为每把Rockey2设定一个与硬件ID号不一样的号码软件ID一来识别该把Rockey2。

参考文献 [1] 林华聪,余剑锋.Delphi 6 数据库设计思想与实践[M],冶金工业出版社,2002.10 [2] 郭旭,周建明.Delphi 6 应用开发指南[M],清华大学出版社,2002.1 [3] 李维. Delphi 7高效数据库程序设计[M],机械工业出版社,2003.1 [4]刘子锐. Delphi数据库开发自学教程[M],清华大学出版社,2003.9 [5] 吴天准. Delphi 7程序设计技巧与实例[M],中国铁道出版社,2003.5

致 谢 省略

5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)本项目源码基于Delphi+USB KEY的文件加密工具设计与实现(源码+文档)_USB KEY_文件加密.zip


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有